/**
 *
 *	编译一个编译时注解处理主要分两步：
 *	1. 继承AbstractProcessor，实现自己的注解处理器  -> {@link com.mccken.apt.processor.MyAnnotationProcessor}
 *	2. 注册处理器,并打成jar包
 *
 *  编写一个注解处理器首先要对ProcessingEnvironment和RoundEnvironment非常熟悉.需要分析分析
 *  首先看{@link javax.annotation.processing.ProcessingEnvironment}
 *
 *  Messager getMessager();     Messager用来报告错误，警告和其他提示信息
 *  Filer getFiler();           Filter用来创建新的源文件，class文件以及辅助文件
 *  Elements getElementUtils();    Elements中包含用于操作Element的工具方法
 *  Types getTypeUtils();  Types中包含用于操作TypeMirror的工具方法
 *  SourceVersion getSourceVersion();  返回任何生成的源文件和类文件应符合的源版本。
 *  Locale getLocale();    如果没有有效的语言环境，则返回当前语言环境或null 。语言环境可用于提供本地化消息。
 *
 *  重点来认识一下Element，Types和Filer
 *
 * - Element
 * element表示一个静态的，语言级别的构件。而任何一个结构化文档都可以看作是由不同的element组成的结构体，比如XML，JSON等。
 * 对于java源文件来说，Element代表程序元素：包，类，方法都是一种程序元素。
 */
package com.mccken.demo.apt;